home *** CD-ROM | disk | FTP | other *** search
/ Inverse 10 / Inverse_10_2002-06-20_Oxygen_Side_A.d64 / z assem 6 - unpa < prev    next >
Text File  |  2023-02-26  |  5KB  |  324 lines

  1.          *= $1000
  2.  
  3. source   = $2000
  4.  
  5. sor      = $fa
  6. sqr      = $fc
  7. sim      = $fe
  8. sys      = $02
  9.  
  10. ;---------------------------------------
  11.  
  12.          lda #$a0  ;przykladowe
  13.          sta sor   ;wartosci
  14.          lda #$27
  15.          sta sor+1
  16.  
  17.          lda #$01  ;wektor przesuniecia
  18.          sta bajt{CBM-@}a
  19.  
  20.          ldy #0
  21.          lda (sor),y
  22.          bne *+3
  23.          rts          ;no packing!
  24.          sta string{CBM-@}l
  25.          sta pack{CBM-@}lenght+1
  26.  
  27.          lda sor
  28.          sta sqr
  29.          lda sor+1
  30.          sta sqr+1
  31.  
  32.          lda sqr
  33.          sec
  34.          sbc string{CBM-@}l
  35.          sbc #5      ;ilosc zmiennych
  36.          sta sqr
  37.          bcs *+4
  38.          dec sqr+1
  39.  
  40.          lda (sqr),y
  41.          sta sim
  42.          iny
  43.          lda (sqr),y
  44.          sta sim+1
  45.  
  46.          jsr inc{CBM-@}sim
  47.  
  48.          ldy #4
  49.          lda (sqr),y
  50.          sta bajt{CBM-@}c
  51.  
  52.          lda #5
  53.          clc
  54.          adc sqr
  55.          sta sqr
  56.          bcc *+4
  57.          inc sqr+1
  58. kh3
  59.          ldy #0
  60.          lda (sqr),y
  61.          sta pack{CBM-@}lenght
  62. n0
  63.          jsr stack{CBM-@}to
  64.  
  65.          jsr move{CBM-@}mem{CBM-@}add
  66.  
  67.          jsr stack{CBM-@}from
  68.  
  69.          ldy #0
  70.          lda bajt{CBM-@}c
  71.          sta (sim),y
  72.  
  73.          jsr inc{CBM-@}sor
  74.  
  75.          jsr inc{CBM-@}sqr
  76.  
  77.          lda sim  ;o miejsce w tabeli
  78.          clc
  79.          adc #3
  80.          sta sim
  81.          bcc *+4
  82.          inc sim+1
  83.  
  84.          dec pack{CBM-@}lenght
  85.          lda pack{CBM-@}lenght
  86.          bne n0
  87.  
  88.          dec string{CBM-@}l
  89.          lda string{CBM-@}l
  90.          beq up9
  91.  
  92.          jsr inc{CBM-@}sqr
  93.  
  94.          inc bajt{CBM-@}c
  95.  
  96.          jmp kh3
  97. up9
  98.          lda sor
  99.          sec
  100.          sbc pack{CBM-@}lenght+1
  101.          sbc #1
  102.          sta sor
  103.          bcs *+4
  104.          dec sor+1
  105.  
  106.          lda sor
  107.          ldx sor+1
  108.  
  109. ;---------------------------------------
  110.        ; lda #$b3      ;wartosci
  111.          sta end{CBM-@}file  ;przykladowe
  112.        ; lda #$20
  113.          stx end{CBM-@}file+1
  114.  
  115.          lda end{CBM-@}file+1
  116.          sta sor+1
  117.          lda end{CBM-@}file
  118.          sec
  119.          sbc #2
  120.          sta sor
  121.          bcs *+4
  122.          dec sor+1
  123.          ldy #0
  124.          lda (sor),y
  125.          sta pack{CBM-@}lenght
  126.          iny
  127.          lda (sor),y
  128.          sta pack{CBM-@}lenght+1
  129.  
  130.          lda sor
  131.          sec
  132.          sbc #5  ;ignorujemy bajty
  133.          sta sor  ;poczatku tablicy
  134.          bcs *+4      ;pakowania!
  135.          dec sor+1
  136. ar0
  137.          ldy #0
  138.          lda (sor),y
  139.          sta sim
  140.          iny
  141.          lda (sor),y
  142.          sta sim+1
  143.          iny
  144.          lda (sor),y
  145.          sta bajt{CBM-@}a ;przesuniecie
  146. m00
  147.          lda pack{CBM-@}lenght
  148.          bne m0
  149.          lda pack{CBM-@}lenght
  150.          bne m0
  151.          inc $d020 ;koniec!
  152.          jmp *-3
  153. m0
  154.          jsr stack{CBM-@}to
  155.  
  156.          jsr move{CBM-@}mem{CBM-@}add
  157.  
  158.          jsr stack{CBM-@}from
  159.  
  160.          ldy #0
  161.          lda (sim),y
  162.          sta (sim),y
  163.          iny
  164.          cpy bajt{CBM-@}a
  165.          bne *-6
  166.  
  167.          lda sor
  168.          clc
  169.          adc bajt{CBM-@}a
  170.          sta sor
  171.          bcc *+4
  172.          inc sor+1
  173.  
  174.          lda sor
  175.          sec
  176.          sbc #3 ;kolejny adres z tabeli
  177.          sta sor
  178.          bcs *+4
  179.          dec sor+1
  180.  
  181.          lda pack{CBM-@}lenght
  182.          sec
  183.          sbc #1
  184.          sta pack{CBM-@}lenght
  185.          bcs *+5
  186.          dec pack{CBM-@}lenght+1
  187.  
  188.          jmp ar0
  189.  
  190.          rts
  191. ;---------------------------------------
  192. inc{CBM-@}sim
  193.          lda sim
  194.          clc
  195.          adc #1
  196.          sta sim
  197.          bcc *+4
  198.          inc sim+1
  199.          rts
  200.          ;+++++++++
  201. ;---------------------------------------
  202. move{CBM-@}mem{CBM-@}add
  203.  
  204.       ;  lda #$00   ;skad (w gore)
  205.       ;  sta sim
  206.       ;  lda #$09
  207.       ;  sta sim+1
  208.  
  209.       ;  lda #$00   ;dokad
  210.       ;  sta sor
  211.       ;  lda #$0a
  212.       ;  sta sor+1
  213.  
  214.       ;  lda #16   ;parametr 'move'
  215.       ;  sta bajt{CBM-@}a
  216.  
  217.          ;
  218.  
  219.          lda sim
  220.          sec
  221.          sbc #1
  222.          sta sim
  223.          bcs *+4
  224.          dec sim+1
  225. jos
  226.          ldy #0
  227.          lda (sor),y
  228.          ldy bajt{CBM-@}a ;przesuniecie
  229.          sta (sor),y
  230.  
  231.          jsr dec{CBM-@}sor
  232.  
  233.          lda sor
  234.          cmp sim
  235.          bne jos
  236.          lda sor+1
  237.          cmp sim+1
  238.          bne jos
  239.          rts
  240.          ;++++++++++
  241. dec{CBM-@}sor
  242.          lda sor
  243.          sec
  244.          sbc #1
  245.          sta sor
  246.          bcs *+4
  247.          dec sor+1
  248.          rts
  249.          ;++++++++++
  250. inc{CBM-@}sqr
  251.          lda sqr
  252.          clc
  253.          adc #1
  254.          sta sqr
  255.          bcc *+4
  256.          inc sqr+1
  257.          rts
  258. ;---------------------------------------
  259. inc{CBM-@}sor
  260.          lda sor
  261.          clc
  262.          adc #1
  263.          sta sor
  264.          bcc *+4
  265.          inc sor+1
  266.  
  267.          rts
  268. ;---------------------------------------
  269. stack{CBM-@}to
  270.          lda sor
  271.          sta stack
  272.          lda sor+1
  273.          sta stack+1
  274.          lda sqr
  275.          sta stack+2
  276.          lda sqr+1
  277.          sta stack+3
  278.          lda sim
  279.          sta stack+4
  280.          lda sim+1
  281.          sta stack+5
  282.          lda bajt{CBM-@}b
  283.          sta stack+6
  284.          rts
  285. ;---------------------------------------
  286. stack{CBM-@}from
  287.          lda stack
  288.          sta sor
  289.          lda stack+1
  290.          sta sor+1
  291.          lda stack+2
  292.          sta sqr
  293.          lda stack+3
  294.          sta sqr+1
  295.          lda stack+4
  296.          sta sim
  297.          lda stack+5
  298.          sta sim+1
  299.          lda stack+6
  300.          sta bajt{CBM-@}b
  301.          rts
  302. ;---------------------------------------
  303. ;zmienne srodowiskowe
  304. string{CBM-@}l
  305.          .byte $00
  306. store
  307.          .byte $00
  308. bajt{CBM-@}a
  309.          .byte $00
  310. bajt{CBM-@}b
  311.          .byte $00
  312. bajt{CBM-@}c
  313.          .byte $00
  314. ;---------------------------------------
  315. ;zmienne globalne
  316. pack{CBM-@}lenght
  317.          .byte $00,$00
  318. end{CBM-@}file
  319.          .byte $00,$00
  320. stack
  321.          .byte $00,$00,$00,$00,$00,$00
  322.          .byte $00,$00,$00,$00,$00,$00
  323.  
  324.